#include<bits/stdc++.h>
using namespace std;

struct node{
	int a, b;
}a[10000];

bool vis[10000];

int main(){
//	freopen("d://desktop//P1233_5.in", "r", stdin);
	int n;
	cin>>n;
	for(int i = 1;i <= n;i++){
		cin>>a[i].a>>a[i].b;
	}
	sort(a+1, a+n+1, [](node x, node y){
		if(x.a != y.a)
			return x.a > y.a;
		else
			return x.b > y.b;
	});
	
	int ans = 0;
	for(int i = 1;i <= n;i++){
		if(vis[i])
			continue;
		
		// 已经按长度降序，后续考虑宽度即可
		int pre = a[i].b;
		for(int j = i+1;j <= n;j++){
			if(a[j].b <= pre && !vis[j]){
				vis[j] = 1;
				pre = a[j].b;
			}
		}
	}
	
	// vis为0表示从其开始，统计个数就是所需时间
	for(int i = 1;i <= n;i++){
		if(!vis[i])
			ans++;
	}
	cout<<ans;
	return 0;
}
